/**
 *
 * 服务端控制js脚本
 * @author keluo <pycorvn@yeah.net>
 * @link http://www.scabish.cn
*/

var SCABISH = {
	host : '<?php echo SCScabish::core('url')->root?>',
	upload : '<?php echo SCScabish::core('url')->root?>/static/upload',
	
	/**
	 * 检查服务器返回数据是否成功
	 * @param string response 服务器返回的数据
	 * @return boolean
	 */
	isOk : function(response) {
		try {
			var r = eval('(' + response + ')');
			if(r.__status == 'ok') return true;
		} catch(e) {
			return false;
		}
		return false;
	},
	
	/**
	 * 检查并分析服务端返回的数据状态
	 * @param string response 服务器返回的数据
	 * @return object or boolean
	 */
	obtain : function(response) {
		try {
			var r = eval('(' + response + ')');
			return r.data;
		} catch(e) {
			return false;
		}
	}
};

/**
 * 登录框
 */
var LOGIN = {

	success : false, // 是否登录成功
	user_cache : <?php echo $user_info ? str_replace('\\', '', json_encode($user_info)) : 'null'?>, // 当前用户信息缓存
	
	/**
	 * 弹出用户登录框，并回调被阻断的方法
	 * 为了保存程序中断前的上下文环境，callback最好使用匿名方法
	 * 如果用户直接关闭登录框时，this.success属性被置为false，callback需添加代码，恢复调用该方法前的状态
	 * @param function callback 回调方法
	 */
	show : function(callback) {
		var _this = this;
		var requestLogin = function() {
			if($.trim($('#sc_login_email').val()) == '') {
				$('#sc_login_email').val('').focus();
				return false;
			}
			if($('#sc_login_password').val() == '') {
				$('#sc_login_password').focus();
				return false;
			}
			$.post(SCABISH.host+'/user/login', $('#sc_login_form').serialize(), function(response) {
				if(SCABISH.isOk(response)) {
					_this.success = true; // 重置标识
					_this.updateUserCache(SCABISH.obtain(response)); // 更新用户缓存信息
					callback();
					_dialog.close();
				} else {
					$.dialog({'title':'','content':'<span style="color:#FF7F24;font-size:14px;">登陆失败，再试试</span>'}).time(1000);
					$('#sc_login_email').focus();
				}
			});
		};
		
		var _dialog = $.dialog({
			id: 'sc_login_box',
			title: '登录',
			content: '<form id="sc_login_form" action="" method="post">\
		    	<input id="sc_login_email" name="email" type="text" placeholder="邮箱" style="width:200px;" tabindex="1" /><br/>\
				<input id="sc_login_password" name="password" type="password" placeholder="密码" style="width:200px;" tabindex="2" />\
				</form>',
			lock: true,
			fixed: true,
			focus: false,
			ok: function () { requestLogin(); return false;},
			okValue: '登录',
			cancel: function() { _this.success = false; callback(); },
		    cancelValue: '取消'
		});
		
		$('#sc_login_email').focus();
		$('#sc_login_email, #sc_login_password').die().keyup(function(e) {
			if(e.which == 13) {
				requestLogin();
			}
		});
	},
	
	/**
	 * 更新当前用户缓存信息
	 */
	updateUserCache : function(user_info) {
		//debugger;
		this.user_cache = user_info;
	},
	
	/**
	 * 获取当前缓存的用户ID
	 */
	getUserCacheId : function() {
		return (null == this.user_cache) ? false : this.user_cache.user_id;
	}
};